package com.yyfax.pay.config.data.dao;

import java.util.List;

import com.yyfax.pay.config.model.po.PaymentQuotaPO;

/**
 * 商户支付限额信息Dao
 * 
 * @author changxd
 * @date 2017-04-13
 * @since 1.0.0
 */
public interface PaymentQuotaDao {
	/**
	 * 新增商户信息
	 * 
	 * @author changxd
	 * @date 2017-04-12 10:38:31
	 * @since 1.0.0
	 * @return
	 */
	public int insert(PaymentQuotaPO config) throws Exception;

	/**
	 * 更新商户信息
	 * 
	 * @author changxd
	 * @date 2017-04-12 10:38:35
	 * @since 1.0.0
	 * @return
	 */
	public int update(PaymentQuotaPO config) throws Exception;

	/**
	 * 按ID查询商户信息
	 * 
	 * @author changxd
	 * @date 2017-04-12 10:38:38
	 * @since 1.0.0
	 * @return
	 */
	public PaymentQuotaPO selectById(int id) throws Exception;

	/**
	 * 获取商户限额配置信息
	 * 
	 * @author buyi
	 * @date 2017-05-02 16:19:13
	 * @since v1.0.0
	 * @param merchantCode 商户号
	 * @param paymentCode 支付通道
	 * @param bankCode 银行编号
	 * @return
	 * @deprecated 富友存管，表扩展，作废,使用selectByMerchAndPaymentCodeAndBankCodeAndSubjectTypeAndPayMode
	 */
	public PaymentQuotaPO selectByMerchAndPaymentCodeAndBankCode(String merchantCode, String paymentCode, String bankCode);

	/**
	 * 获取商户限额配置信息
	 * 
	 * @author buyi
	 * @date 2017-09-13 11:24:03
	 * @since v2.0.0
	 * @param merchantCode
	 * @param paymentCode
	 * @param bankCode
	 * @param subjectType
	 * @param payMode
	 * @return
	 */
	public PaymentQuotaPO selectByMerchAndPaymentCodeAndBankCodeAndSubjectTypeAndPayMode(String merchantCode, String paymentCode, String bankCode,
			String subjectType, String payMode);

	/**
	 * 查询全部的商户信息
	 * 
	 * @author changxd
	 * @date 2017-04-12 10:38:38
	 * @since 1.0.0
	 * @return
	 */
	public List<PaymentQuotaPO> selectForList() throws Exception;

	/**
	 * 按商户编号和支付通道编号查询商户信息
	 * 
	 * @author changxd
	 * @date 2017-04-12 10:38:38
	 * @since 1.0.0
	 * @param merchantCode
	 * @param paymentCode
	 * @return
	 * @throws Exception
	 */
	public List<PaymentQuotaPO> selectByMerAndPay(String merchantCode, String paymentCode) throws Exception;
}
